package com.turnengine.client.local.unit.bean;

import com.javabi.codebuilder.generated.IGeneratedBean;
import com.turnengine.client.local.unit.enums.UnitMove;
import com.turnengine.client.local.unit.enums.UnitNode;
import com.turnengine.client.local.unit.enums.UnitType;

/**
 * The I Unit.
 */
public interface IUnit extends IGeneratedBean, Comparable<IUnit> {

	/**
	 * Returns the id.
	 * @return the id.
	 */
	int getId();

	/**
	 * Returns the name.
	 * @return the name.
	 */
	String getName();

	/**
	 * Returns the node.
	 * @return the node.
	 */
	UnitNode getNode();

	/**
	 * Returns the type.
	 * @return the type.
	 */
	UnitType getType();

	/**
	 * Returns the move.
	 * @return the move.
	 */
	UnitMove getMove();

	/**
	 * Returns the group id.
	 * @return the group id.
	 */
	int getGroupId();

	/**
	 * Returns the faction id.
	 * @return the faction id.
	 */
	int getFactionId();

	/**
	 * Sets the id.
	 * @param id the id to set.
	 */
	void setId(int id);

	/**
	 * Sets the name.
	 * @param name the name to set.
	 */
	void setName(String name);

	/**
	 * Sets the node.
	 * @param node the node to set.
	 */
	void setNode(UnitNode node);

	/**
	 * Sets the type.
	 * @param type the type to set.
	 */
	void setType(UnitType type);

	/**
	 * Sets the move.
	 * @param move the move to set.
	 */
	void setMove(UnitMove move);

	/**
	 * Sets the group id.
	 * @param groupId the group id to set.
	 */
	void setGroupId(int groupId);

	/**
	 * Sets the faction id.
	 * @param factionId the faction id to set.
	 */
	void setFactionId(int factionId);
}
